Kanzi Engine 插件
通过 Kanzi 插件,您可以扩展 Kanzi 的功能并自定义 Kanzi 以适应您的应用程序开发要求。当您创建 Kanzi 插件后,可与任何 Kanzi 用户分享该扩展功能。
在 Kanzi 中,您可以创建并使用以下类型的插件:
- Kanzi Engine 插件扩展 Kanzi Engine 的功能。Kanzi Engine 在目标平台上执行这些插件。请参阅创建 Kanzi Engine 插件。
- Kanzi Studio 插件扩展 Kanzi Studio 的功能并在 Kanzi Studio 中运行。请参阅 Kanzi Studio 插件。
Kanzi Engine 插件扩展 Kanzi Engine 的功能。Kanzi Engine 在目标平台上执行这些插件。 使用 Kanzi Engine 插件:
- 使用 Kanzi Engine API 创建自定义节点,将其用于 Kanzi Studio 工程,并在 Kanzi Studio 预览 (Preview) 中查看其工作情况。
- 使用 Kanzi Engine API 创建自定义属性类型和消息,并将其用于 Kanzi Studio 工程。
- 定义您的 Kanzi 应用程序的数据录入点,并形成 Kanzi 应用程序设计师和开发者之间的约定。
要了解如何使用 Kanzi Engine 插件,请参阅:
Kanzi 插件的开发很灵活。您可以使用:
- 动态链接。在这种情况下,该插件作为动态链接的库部署(.dll、.so 等)。使用这种方法时:
- 您可以添加或移除插件。例如,Kanzi Studio 预览 (Preview) 会动态加载工程中指定的插件。
- 您可以独立更新作为单独的二进制文件部署的插件。例如,通过这种方法来扩展功能。
- 允许应用程序依赖于某个特定插件。您可以通过 kzb 文件中的内容间接引用插件中的类。或者,应用程序代码可以直接从插件调用类方法。
- 有些平台不支持动态库,或者对动态库的支持有限。例如,Android 不支持 .apk 内容的独立更新。
- 静态链接。在这种情况下,插件与应用程序二进制文件一起部署。使用这种方法时:
- 如果不更新应用程序二进制文件,就无法移除或更新插件。
- 您可以使用一些优化功能,并且可以提供更好的性能。
- 应用程序启动期间,您必须在
Application::registerMetadataOverride()中手动注册所有静态插件。
建议的方法是,将插件构建为 .dll 以在 Kanzi Studio 预览 (Preview) 中使用,并且以静态方式将该插件链接到您的应用程序。通过这种方式,您就可以在 预览 (Preview) 中使用该插件,并且具有在应用程序中进行优化的益处。
每个插件提供派生自 Module 的类。使用插件之前,必须注册其模块。对于支持动态加载库的平台,如果需要插件但尚未加载或注册该插件,Kanzi Engine 会尝试自动执行操作。对于不支持动态加载的平台或静态链接的插件,必须在 Application::registerMetadataOverride() 中手动注册这些模块。
Node2D_plugin 和 Node3D_plugin 示例提供为 Android 平台注册这些模块的示例代码。